package com.qiaoba.module.system.service;

import com.qiaoba.api.system.service.SysConfigApiService;
import com.qiaoba.module.system.entity.SysConfig;
import com.qiaoba.module.system.entity.dto.SysConfigDTO;
import com.qiaoba.module.system.entity.param.SysConfigParam;

import java.util.List;

/**
 * 参数配置 服务层
 *
 * @author ailanyin
 * @date 2023-09-09 16:26:13
 */
public interface SysConfigService extends SysConfigApiService {

    /**
     * 新增参数配置
     *
     * @param dto 参数配置
     * @return 结果
     */
    int insert(SysConfigDTO dto);

    /**
     * 修改参数配置
     *
     * @param dto 参数配置
     * @return 结果
     */
    int updateById(SysConfigDTO dto);

    /**
     * 删除参数配置
     *
     * @param configId 参数配置ID
     * @return 结果
     */
    int deleteById(String configId);

    /**
     * 查询参数配置
     *
     * @param configId  参数配置ID
     * @param allowNull 是否允许空
     * @return 参数配置
     */
    SysConfig selectById(String configId, boolean allowNull);

    /**
     * 查询参数配置列表
     *
     * @param param 查询参数
     * @return 参数配置列表
     */
    List<SysConfig> selectList(SysConfigParam param);

    /**
     * 批量删除
     *
     * @param ids 参数配置IDS
     * @return 结果
     */
    int deleteByIds(List<String> ids);

    /**
     * 刷新缓存
     */
    void resetCache();

}
